package com.starry.androidmvvmexample.base

import android.view.ViewGroup
import android.view.Window
import androidx.appcompat.app.AppCompatActivity
import com.starry.androidmvvmexample.base.action.IBaseView
import com.starry.androidmvvmexample.base.action.IKeyboardAction

/**
 *
 * @author lixu157
 * @date 2025/5/2
 * @des 描述信息
 */
abstract class BaseActivity : AppCompatActivity(), IBaseView, IKeyboardAction {

  override fun initView() {
    initSoftKeyboard()
  }

  /**
   * 和 setContentView 对应的方法
   */
  open fun getContentView(): ViewGroup? {
    return findViewById(Window.ID_ANDROID_CONTENT)
  }

  /**
   * 初始化软键盘
   */
  protected open fun initSoftKeyboard() {
    // 点击外部隐藏软键盘，提升用户体验
    getContentView()?.setOnClickListener {
      // 隐藏软键，避免内存泄漏
      hideKeyboard(currentFocus)
    }
  }

  override fun finish() {
    super.finish()
    // 隐藏软键，避免内存泄漏
    hideKeyboard(currentFocus)
  }
}